home *** CD-ROM | disk | FTP | other *** search
/ Sky at Night 2007 June / SAN CD 6-2007 CD-ROM 25.iso / pc / Software / AstroGrav_Win / Java / jre1.6.0 / lib / rt.jar / java / awt / Menu.class (.txt) < prev    next >
Encoding:
Java Class File  |  2006-11-29  |  5.3 KB  |  309 lines

  1. package java.awt;
  2.  
  3. import java.awt.event.KeyEvent;
  4. import java.awt.peer.MenuPeer;
  5. import java.io.IOException;
  6. import java.io.ObjectInputStream;
  7. import java.io.ObjectOutputStream;
  8. import java.util.Enumeration;
  9. import java.util.Vector;
  10. import javax.accessibility.Accessible;
  11. import javax.accessibility.AccessibleContext;
  12.  
  13. public class Menu extends MenuItem implements MenuContainer, Accessible {
  14.    Vector items;
  15.    boolean tearOff;
  16.    boolean isHelpMenu;
  17.    private static final String base = "menu";
  18.    private static int nameCounter;
  19.    private static final long serialVersionUID = -8809584163345499784L;
  20.    private int menuSerializedDataVersion;
  21.  
  22.    public Menu() throws HeadlessException {
  23.       this("", false);
  24.    }
  25.  
  26.    public Menu(String var1) throws HeadlessException {
  27.       this(var1, false);
  28.    }
  29.  
  30.    public Menu(String var1, boolean var2) throws HeadlessException {
  31.       super(var1);
  32.       this.items = new Vector();
  33.       this.menuSerializedDataVersion = 1;
  34.       this.tearOff = var2;
  35.    }
  36.  
  37.    String constructComponentName() {
  38.       synchronized(this.getClass()) {
  39.          return "menu" + nameCounter++;
  40.       }
  41.    }
  42.  
  43.    public void addNotify() {
  44.       synchronized(this.getTreeLock()) {
  45.          if (this.peer == null) {
  46.             this.peer = Toolkit.getDefaultToolkit().createMenu(this);
  47.          }
  48.  
  49.          int var2 = this.getItemCount();
  50.  
  51.          for(int var3 = 0; var3 < var2; ++var3) {
  52.             MenuItem var4 = this.getItem(var3);
  53.             var4.parent = this;
  54.             var4.addNotify();
  55.          }
  56.  
  57.       }
  58.    }
  59.  
  60.    public void removeNotify() {
  61.       synchronized(this.getTreeLock()) {
  62.          int var2 = this.getItemCount();
  63.  
  64.          for(int var3 = 0; var3 < var2; ++var3) {
  65.             this.getItem(var3).removeNotify();
  66.          }
  67.  
  68.          super.removeNotify();
  69.       }
  70.    }
  71.  
  72.    public boolean isTearOff() {
  73.       return this.tearOff;
  74.    }
  75.  
  76.    public int getItemCount() {
  77.       return this.countItems();
  78.    }
  79.  
  80.    /** @deprecated */
  81.    @Deprecated
  82.    public int countItems() {
  83.       return this.countItemsImpl();
  84.    }
  85.  
  86.    final int countItemsImpl() {
  87.       return this.items.size();
  88.    }
  89.  
  90.    public MenuItem getItem(int var1) {
  91.       return this.getItemImpl(var1);
  92.    }
  93.  
  94.    final MenuItem getItemImpl(int var1) {
  95.       return (MenuItem)this.items.elementAt(var1);
  96.    }
  97.  
  98.    public MenuItem add(MenuItem var1) {
  99.       synchronized(this.getTreeLock()) {
  100.          if (var1.parent != null) {
  101.             var1.parent.remove(var1);
  102.          }
  103.  
  104.          this.items.addElement(var1);
  105.          var1.parent = this;
  106.          MenuPeer var3 = (MenuPeer)this.peer;
  107.          if (var3 != null) {
  108.             var1.addNotify();
  109.             var3.addItem(var1);
  110.          }
  111.  
  112.          return var1;
  113.       }
  114.    }
  115.  
  116.    public void add(String var1) {
  117.       this.add(new MenuItem(var1));
  118.    }
  119.  
  120.    public void insert(MenuItem var1, int var2) {
  121.       synchronized(this.getTreeLock()) {
  122.          if (var2 < 0) {
  123.             throw new IllegalArgumentException("index less than zero.");
  124.          } else {
  125.             int var4 = this.getItemCount();
  126.             Vector var5 = new Vector();
  127.  
  128.             for(int var6 = var2; var6 < var4; ++var6) {
  129.                var5.addElement(this.getItem(var2));
  130.                this.remove(var2);
  131.             }
  132.  
  133.             this.add(var1);
  134.  
  135.             for(int var9 = 0; var9 < var5.size(); ++var9) {
  136.                this.add((MenuItem)var5.elementAt(var9));
  137.             }
  138.  
  139.          }
  140.       }
  141.    }
  142.  
  143.    public void insert(String var1, int var2) {
  144.       this.insert(new MenuItem(var1), var2);
  145.    }
  146.  
  147.    public void addSeparator() {
  148.       this.add("-");
  149.    }
  150.  
  151.    public void insertSeparator(int var1) {
  152.       synchronized(this.getTreeLock()) {
  153.          if (var1 < 0) {
  154.             throw new IllegalArgumentException("index less than zero.");
  155.          } else {
  156.             int var3 = this.getItemCount();
  157.             Vector var4 = new Vector();
  158.  
  159.             for(int var5 = var1; var5 < var3; ++var5) {
  160.                var4.addElement(this.getItem(var1));
  161.                this.remove(var1);
  162.             }
  163.  
  164.             this.addSeparator();
  165.  
  166.             for(int var8 = 0; var8 < var4.size(); ++var8) {
  167.                this.add((MenuItem)var4.elementAt(var8));
  168.             }
  169.  
  170.          }
  171.       }
  172.    }
  173.  
  174.    public void remove(int var1) {
  175.       synchronized(this.getTreeLock()) {
  176.          MenuItem var3 = this.getItem(var1);
  177.          this.items.removeElementAt(var1);
  178.          MenuPeer var4 = (MenuPeer)this.peer;
  179.          if (var4 != null) {
  180.             var3.removeNotify();
  181.             var3.parent = null;
  182.             var4.delItem(var1);
  183.          }
  184.  
  185.       }
  186.    }
  187.  
  188.    public void remove(MenuComponent var1) {
  189.       synchronized(this.getTreeLock()) {
  190.          int var3 = this.items.indexOf(var1);
  191.          if (var3 >= 0) {
  192.             this.remove(var3);
  193.          }
  194.  
  195.       }
  196.    }
  197.  
  198.    public void removeAll() {
  199.       synchronized(this.getTreeLock()) {
  200.          int var2 = this.getItemCount();
  201.  
  202.          for(int var3 = var2 - 1; var3 >= 0; --var3) {
  203.             this.remove(var3);
  204.          }
  205.  
  206.       }
  207.    }
  208.  
  209.    boolean handleShortcut(KeyEvent var1) {
  210.       int var2 = this.getItemCount();
  211.  
  212.       for(int var3 = 0; var3 < var2; ++var3) {
  213.          MenuItem var4 = this.getItem(var3);
  214.          if (var4.handleShortcut(var1)) {
  215.             return true;
  216.          }
  217.       }
  218.  
  219.       return false;
  220.    }
  221.  
  222.    MenuItem getShortcutMenuItem(MenuShortcut var1) {
  223.       int var2 = this.getItemCount();
  224.  
  225.       for(int var3 = 0; var3 < var2; ++var3) {
  226.          MenuItem var4 = this.getItem(var3).getShortcutMenuItem(var1);
  227.          if (var4 != null) {
  228.             return var4;
  229.          }
  230.       }
  231.  
  232.       return null;
  233.    }
  234.  
  235.    synchronized Enumeration shortcuts() {
  236.       Vector var1 = new Vector();
  237.       int var2 = this.getItemCount();
  238.  
  239.       for(int var3 = 0; var3 < var2; ++var3) {
  240.          MenuItem var4 = this.getItem(var3);
  241.          if (var4 instanceof Menu) {
  242.             Enumeration var6 = ((Menu)var4).shortcuts();
  243.  
  244.             while(var6.hasMoreElements()) {
  245.                var1.addElement(var6.nextElement());
  246.             }
  247.          } else {
  248.             MenuShortcut var5 = var4.getShortcut();
  249.             if (var5 != null) {
  250.                var1.addElement(var5);
  251.             }
  252.          }
  253.       }
  254.  
  255.       return var1.elements();
  256.    }
  257.  
  258.    void deleteShortcut(MenuShortcut var1) {
  259.       int var2 = this.getItemCount();
  260.  
  261.       for(int var3 = 0; var3 < var2; ++var3) {
  262.          this.getItem(var3).deleteShortcut(var1);
  263.       }
  264.  
  265.    }
  266.  
  267.    private void writeObject(ObjectOutputStream var1) throws IOException {
  268.       var1.defaultWriteObject();
  269.    }
  270.  
  271.    private void readObject(ObjectInputStream var1) throws IOException, ClassNotFoundException, HeadlessException {
  272.       var1.defaultReadObject();
  273.  
  274.       for(int var2 = 0; var2 < this.items.size(); ++var2) {
  275.          MenuItem var3 = (MenuItem)this.items.elementAt(var2);
  276.          var3.parent = this;
  277.       }
  278.  
  279.    }
  280.  
  281.    public String paramString() {
  282.       String var1 = ",tearOff=" + this.tearOff + ",isHelpMenu=" + this.isHelpMenu;
  283.       return super.paramString() + var1;
  284.    }
  285.  
  286.    private static native void initIDs();
  287.  
  288.    public AccessibleContext getAccessibleContext() {
  289.       if (this.accessibleContext == null) {
  290.          this.accessibleContext = new AccessibleAWTMenu(this);
  291.       }
  292.  
  293.       return this.accessibleContext;
  294.    }
  295.  
  296.    int getAccessibleChildIndex(MenuComponent var1) {
  297.       return this.items.indexOf(var1);
  298.    }
  299.  
  300.    static {
  301.       Toolkit.loadLibraries();
  302.       if (!GraphicsEnvironment.isHeadless()) {
  303.          initIDs();
  304.       }
  305.  
  306.       nameCounter = 0;
  307.    }
  308. }
  309.